package com.mycp.mycpcommonlib;


import android.content.Context;
import android.os.Build;
import android.os.StrictMode;

import com.orhanobut.MyLoggerConfig;
import com.xzkj.ad.AdManager;

import androidx.multidex.MultiDexApplication;


/**
 * @author: liujie
 * @date: 2021/6/11
 * @description:
 */
public class App extends MultiDexApplication {

    private static App instance;

    private static boolean isShowHideFile;
    private static boolean isShowExternalSdCard;

    public static String PATH = "";

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
        setUpThreePlatformParams();

        AdManager.init(this);
    }

    /**
     * description: 实例化第三方库
     * author: liujie
     * date: 2017/12/27 15:19
     */
    private void setUpThreePlatformParams() {
        MyLoggerConfig.getInstance().context(this).build();
        //解决android N（>=24）系统以上分享 路径为file://时的 android.os.FileUriExposedException异常
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
        }

//        TTAdSdk.init(getApplicationContext(),
//                new TTAdConfig.Builder()
//                        .appId("5217127")
//                        .useTextureView(true) //默认使用SurfaceView播放视频广告,当有SurfaceView冲突的场景，可以使用TextureView
//                        .appName("集影视频工具箱")
//                        .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)//落地页主题
//                        .allowShowNotify(true) //是否允许sdk展示通知栏提示,若设置为false则会导致通知栏不显示下载进度
//                        .debug(true) //测试阶段打开，可以通过日志排查问题，上线时去除该调用
//                        .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI) //允许直接下载的网络状态集合,没有设置的网络下点击下载apk会有二次确认弹窗，弹窗中会披露应用信息
//                        .supportMultiProcess(false) //是否支持多进程，true支持
//                        .asyncInit(true) //是否异步初始化sdk,设置为true可以减少SDK初始化耗时。3450版本开始废弃~~
//                        //.httpStack(new MyOkStack3())//自定义网络库，demo中给出了okhttp3版本的样例，其余请自行开发或者咨询工作人员。
//                        .build(), new TTAdSdk.InitCallback() {
//                    @Override
//                    public void success() {
//                        MyLog.e("实例化穿山甲成功");
//                        //一定要在初始化后才能调用，否则为空
//                        TTAdManager ttAdManager = TTAdSdk.getAdManager();
//                        ttAdManager.requestPermissionIfNecessary(getApplicationContext());
//                    }
//
//                    @Override
//                    public void fail(int i, String s) {
//                        MyLog.e("实例化穿山甲失败"+s);
//                    }
//                });
    }

    public static String getUserId() {
        return "";
    }

    public static App getInstance() {
        return instance;
    }

    public static boolean isIsShowHideFile() {
        return isShowHideFile;
    }

    public static void setIsShowHideFile(boolean isShowHideFile) {
        App.isShowHideFile = isShowHideFile;
    }

    public static boolean isShowExternalSdCard() {
        return isShowExternalSdCard;
    }

    public static void setShowExternalSdCard(boolean isShowExternalSdCard) {
        App.isShowExternalSdCard = isShowExternalSdCard;
    }

    @Override
    protected void attachBaseContext(Context base) {
        //第一次进入app时保存系统选择语言(为了选择随系统语言时使用，如果不保存，切换语言后就拿不到了）
        super.attachBaseContext(base);
    }

    public static String getSavePath() {
        return PATH;
    }

    public static void setSavePath(String savePath) {
        PATH = savePath;
    }
}
